﻿Public Class EstadisticaEgresos

    Enum estados
        valido
        invalido
    End Enum


    Dim estado As estados
    Dim acceso As New acceso_a_datos
    Dim filtrado As Boolean

    Private Sub EstadisticaEgresos_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        Me.Cargar_Estadistica()
        Me.ReportViewer1.RefreshReport()


    End Sub

    Private Sub btn_filtrar_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_filtrar.Click
        filtrado = True
        If Me.validar() = estados.valido Then
            Me.Cargar_Estadistica()
            Me.ReportViewer1.RefreshReport()
        End If
        filtrado = False
    End Sub

    Private Sub Cargar_Estadistica()

        Dim sql As String = ""

        sql = "SELECT Egreso.cod_Egreso, Egreso.fecha, Detalle_Egreso.descripcion, Egreso.monto_Total"
        sql += " FROM Egreso INNER JOIN"
        sql += " Detalle_Egreso ON Egreso.cod_Egreso = Detalle_Egreso.cod_Egreso"
        If filtrado = True Then
            sql += " where Egreso.fecha between '" & dtp_desde.Value.Date & "' and '" & dtp_hasta.Value.Date & "'"
        End If
        If filtrado = False Then
            sql += " where Egreso.fecha between '01/" & Now.Month & "/" & Now.Year & "' and '28/" & Now.Month & "/" & Now.Year & "'"
        End If
        sql += " GROUP BY Egreso.fecha, Egreso.cod_Egreso, Detalle_Egreso.descripcion, Egreso.monto_Total"


        DataTable1BindingSource.DataSource = acceso._consulta(sql)


    End Sub

    Function validar() As estados

        If dtp_desde.Value.Date <> dtp_hasta.Value.Date Then
            If dtp_desde.Value > dtp_hasta.Value Then
                MessageBox.Show("La fecha Desde no puede ser Mayor que la fecha Hasta", "IMPORTANTE", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1)
                Return estados.invalido
            End If
        End If
        If dtp_desde.Value.Date > Now Then
            MessageBox.Show("La fecha desde no puede ser mayor que la fecha actual", "IMPORTANTE", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1)
            Return estados.invalido
        End If
        If dtp_hasta.Value.Date > Now Then
            MessageBox.Show("La fecha hasta no puede ser mayor que la fecha actual", "IMPORTANTE", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1)
            Return estados.invalido
        End If


        Return estados.valido

    End Function
    
    
    Private Sub btn_salir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_salir.Click
        Dispose()
        Close()
    End Sub

    Private Sub EstadisticaEgresos_FormClosed(ByVal sender As System.Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles MyBase.FormClosed
        Dispose()
    End Sub

   
End Class